﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <Windows.h>
#include <stdbool.h>

// system 函数可以用于系统命令的执行

//int main()
//{
//	// 设置控制台窗口的长度和宽度
//	system("mode con cols=100 lines=50");
//
//	// 设置控制台的名称
//	system("title 贪吃蛇");
//
//	// 暂停
//	system("pause");
//
//	return 0;
//}

// 坐标
//int main()
//{
//	COORD pos = { 0 , 0 };
//	return 0;
//}

// GetStdHandle - 可以在标准设备中获得一个句柄
// 句柄就相当于一辆车的方向盘，我们要操作车辆方向就需要使用方向盘，
// 反之我们需要操作控制台窗口就需要获得相应的方向盘->句柄。

//int main()
//{
//	
//	// 获取标准输出设备的句柄
//	// HANDLE -> 指针类型 void*
//	HANDLE houtput = NULL;
//	houtput = GetStdHandle(STD_OUTPUT_HANDLE);
//
//	system("pause");
//	return 0;
//}


// GetConsoleCursorInfo
// 检索有关指定控制台屏幕缓冲区的光标⼤⼩和可⻅性的信息
//int main()
//{
//	
//	// 获取标准输出设备的句柄
//	// HANDLE -> 指针类型 void*
//	HANDLE houtput = NULL;
//	houtput = GetStdHandle(STD_OUTPUT_HANDLE);
//
	//// 定义一个光标信息的结构体
	//CONSOLE_CURSOR_INFO cursor_info = { 0 };
	//// 获取和houtput句柄相关的控制台上的光标信息，存放在cursor_info中
	//GetConsoleCursorInfo(houtput, &cursor_info);

	////// 修改光标的大小
	////cursor_info.dwSize = 100;

	//// 修改光标的可见度
	//cursor_info.bVisible = false;

	//// 设置和houtput句柄相关的控制台上的光标信息
	//SetConsoleCursorInfo(houtput, &cursor_info);
//
//	system("pause");
//	return 0;
//}


// SetConsoleCursorPosition
//设置指定控制台屏幕缓冲区中的光标位置，我们将想要设置的坐标信息放在COORD类型的pos中，调
//⽤SetConsoleCursorPosition函数将光标位置设置到指定的位置。

//int main()
//{
//	
	//// 获取标准输出设备的句柄
	//// HANDLE -> 指针类型 void*
	//HANDLE houtput = NULL;
	//houtput = GetStdHandle(STD_OUTPUT_HANDLE);

	//// 设定光标的位置
	//COORD pos = { 10, 20 };
	//SetConsoleCursorPosition(houtput, pos);
//	printf("hehe");
//
//	system("pause");
//	return 0;
//}

//void set_pos(short x, short y)
//{
//	// 获取标准输出设备的句柄
//	// HANDLE -> 指针类型 void*
//	HANDLE houtput = NULL;
//	houtput = GetStdHandle(STD_OUTPUT_HANDLE);
//
//	// 设定光标的位置
//	COORD pos = { 10, 20 };
//	SetConsoleCursorPosition(houtput, pos);
//}
//
//int main()
//{
//	set_pos(10, 20);
//	printf("hehe\n");
//
//	//getchar();
//	return 0;
//}


// 获取键盘按键状态
// GetAsyncKeyState

// 宏
#define KEY_PRESS(VK) ( (GetAsyncKeyState(VK) & 0x1) ? 1 : 0 )

//int main()
//{
//	while (1)
//	{
//		if (KEY_PRESS(0x30))
//		{
//			printf("0\n");
//		}
//		else if (KEY_PRESS(0x31))
//		{
//			printf("1\n");
//		}
//	}
//
//	return 0;
//}

